package com.bailian.system.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.bailian.system.domain.BlMyFavorite;

/**
 * 我的收藏Mapper接口
 * 
 * @author bailian
 * @date 2025-01-27
 */
public interface BlMyFavoriteMapper 
{
    /**
     * 查询我的收藏
     * 
     * @param favoriteId 我的收藏主键
     * @return 我的收藏
     */
    public BlMyFavorite selectBlMyFavoriteByFavoriteId(Long favoriteId);

    /**
     * 查询我的收藏列表
     * 
     * @param blMyFavorite 我的收藏
     * @return 我的收藏集合
     */
    public List<BlMyFavorite> selectBlMyFavoriteList(BlMyFavorite blMyFavorite);

    /**
     * 新增我的收藏
     * 
     * @param blMyFavorite 我的收藏
     * @return 结果
     */
    public int insertBlMyFavorite(BlMyFavorite blMyFavorite);

    /**
     * 修改我的收藏
     * 
     * @param blMyFavorite 我的收藏
     * @return 结果
     */
    public int updateBlMyFavorite(BlMyFavorite blMyFavorite);

    /**
     * 删除我的收藏
     * 
     * @param favoriteId 我的收藏主键
     * @return 结果
     */
    public int deleteBlMyFavoriteByFavoriteId(Long favoriteId);

    /**
     * 批量删除我的收藏
     * 
     * @param favoriteIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBlMyFavoriteByFavoriteIds(Long[] favoriteIds);

    /**
     * 根据用户ID和内容ID查询收藏
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param contentType 内容类型
     * @return 收藏信息
     */
    public BlMyFavorite selectByUserIdAndContentId(@Param("userId") Long userId, @Param("contentId") Long contentId, @Param("contentType") Integer contentType);

    /**
     * 根据用户ID和内容ID删除收藏
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param contentType 内容类型
     * @return 结果
     */
    public int deleteByUserIdAndContentId(@Param("userId") Long userId, @Param("contentId") Long contentId, @Param("contentType") Integer contentType);
} 